package aphorism;

import java.awt.event.ActionEvent;
import java.util.ArrayList;

/**
 * Kümmert sich um die Liste der Schriftgroessen.
 *
 * @author Patrick Bauer
 * @version 1.0
 */
public class FontSizeSelect extends AbstractSelect {
    private ArrayList<Integer> fontSizeList;

    /**
     * Befuellt die fontSizeList mit Elementen, fuegt diese dann der Combobox hinzu
     * <br>
     * und setzt den ActionListener auf die eigene Instanz.
     */
    public FontSizeSelect() {
        this.fontSizeList = new ArrayList<Integer>();

        this.fontSizeList.add(16);
        this.fontSizeList.add(18);
        this.fontSizeList.add(20);
        this.fontSizeList.add(22);
        this.fontSizeList.add(24);
        this.fontSizeList.add(26);

        for(Integer size: this.fontSizeList) {
            this.addItem(size);
        }

        this.addActionListener(this);
    }


    /**
     * Setzt beim aendern der Combobox die gewaehlte Groesse als Schriftgroesse des StringPanels.
     *
     * @param e uebergebenes Event der Combobox
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        FontSizeSelect box = (FontSizeSelect) e.getSource();
        Integer size = (Integer) box.getSelectedItem();
        
        if(this.getStringPanel() != null){ 
            this.getStringPanel().setFontSize(size);
            this.getStringPanel().repaint();
        }
    }

    /**
     * Setzt den ersten Eintrag der Combobox als Default-Parameter des StringPanels.
     */
    @Override
    protected void setDefaultOption() {
        if(this.getStringPanel() != null){
            Integer item = (Integer) this.getItemAt(0);
            this.getStringPanel().setFontSize(item);
            this.getStringPanel().repaint();
        }
    }    
}
